در بخش اول اين مقاله با اسکريپت های ويژوال بيسيک و ساختارهای کنترلی در VB.NET به صورت اجمالی آشنا شديم . در بخش دوم به بررسی ساختارهای تصميم گيری ، خواهيم پرداخت .
همانگونه که قبلا" اشاره گرديد ، با استفاده از ساختارهای تصميم گيری ، يک و يا چندين شرط بررسی و بر اساس نتايج بدست آمده ، دستور و يا دستوراتی اجراء و يا از اجرای دستور و يا دستوراتی صرفنظر می گردد . در VB.NET از دو روش متفاوت در اين رابطه استفاده می گردد :
مثلا" در صورتی که در يک برنامه قصد طرح اين پرسش از کاربران را داريم که : " آيا می خواهيد قرار ملاقات خود را از طريق تلفن ، نهائی نمائيد ؟"قطعا" پاسخ به سوال فوق دو گزينه بيشتر نخواهد داشت ( پاسخ مثبت ( True ) و منفی ( False ) ) . بنابراين می توان در چنين مواردی از ساختار If...Then استفاده نمود . ولی در صورتی که از کا ربر پرسش شود که : " آيا می خواهيد قرار ملاقات خود را از طريق تلفن ، فاکس و يا Email ، نهائی نمائيد ؟" ، با توجه به تعداد گزينه های موجود ، ترجيح داده می شود که از ساختار Select Case استفاده شود .
قبل از پرداختن با جزئيات نحوه استفاده از ساختارهای فوق ، لازم است با برخی عملگرها که از آنان به منظور ايجاد عبارات شرطی استفاده می شود،بيشتر آشنا شويم .
عملگرهای مقايسه ای
عملگرهای مقايسه ای در VV.NET عبارتند از :
کاربرد
|
عملگر
|
مساوی
|
=
|
کوچکتر از
|
>
|
کوچکتر يا مساوی |
=>
|
نامساوی |
<>
|
بزرگتر
|
<
|
بزرگتر يا مساوی |
=>
|
عملگرهای منطقی
در VB.NET از عملگرهای منطقی متعددی استفاده می شود. جدول زير برخی از متداولترين آنان را نشان می دهد :
مثال
|
کاربرد
|
عملگر
|
If A=1 AND B=2 Then
|
در صورت درست بودن تمامی عملوندها ، شرط مورد نظر ارزش درست را پيدا خواهد کرد .
|
AND
|
If A=1 OR B=2 Then
|
درصورت درست بودن يکی از عملوندها ، شرط مورد نظر ارزش درست را پيدا خواهد کرد
|
OR
|
If NOT A=1 Then
|
مقدار مخالف شرط را بر می گرداند . در صورتی که شرط مورد نظر ارزش درست را داشته باشد ، NOT آن مقدار نادرست را برمی گرداند .
|
NOT
|
اولويت عملگرهای فوق به ترتيب OR,AND,NOT می باشد .
ساختار If...Then
ساختار فوق دارای چهار بخش اساسی است :
-
يک عبارت که شامل يک و يا چندين شرط است که ماحصل آن True و يا False خواهد بود .
-
کد لازم در صورتی که نتيجه عبارت شرطی ، درست باشد .
-
کد لازم در صورتی که نتيجه عبارت شرطی نادرست باشد ( اختياری )
-
يک عبارت که نشاندهنده پايان ساختار است .
برای ايجاد ساختار If...Then ازروش های متفاوتی استفاده می گردد . برای انتخاب گرامر مناسب می بايست به دو سوال فوق پاسخ داده شود :
If..Then : ساده ترين روش استفاده ازساختار تصميم گيری است . در صورت استفاده از ساختار فوق و در مواردی که نتيجه عبارت شرطی نادرست ( False ) باشد ، نمی توان دستور ويا دستوراتی را اجراء نمود .
If A=1 Then TestMessage.Text = " نتيجه عبارت شرطی ، درست است "
|
در صورتی که قصد داشته باشيم پس از بررسی عبارت شرطی و درست بودن آن بيش از يک دستور را اجراء نمائيم ، می بايست پس از درج دستورات مورد نظر ، از يک End If در قسمت پايانی دستورات ، استفاده نمائيم .
If A=1 Then
TestMessage.Text = " در صورت درست بودن شرط ، دو دستور اجراء می گردد "
B = 2
End If
|
If...Then...Else : از ساختار فوق در مواردی که قصد داشته باشيم پس ازبررسی عبارت شرطی و با توجه به نتيجه آن ( درست و يا نادرست ) دستورات خاصی را اجراء نمائيم ، استفاده می شود .
If A=1 Then
TestMessage.Text = " در صورت درست بودن شرط ، اجراء می گردد"
Else
TestMessage.Text = " در صورت نادرست بودن شرط ، اجراء می گردد"
End If
|
If...Then ...ElseIf : با اين که استفاده از ساختار فوق به منظور تصميم گيری بندرت انجام می شود ، ولی در موارد خاصی لازم است که از اين ساختار استفاده شود. با استفاده از ساختار فوق می توان عبارات شرطی متفاوتی را با يکديگر ترکيب و بر اساس نتايج بدست آمده ، دستور و يا دستورات خاصی را با توجه به وضعيت بوجود آمده ، اجراء نمود . بدين منظور لازم است که هر يک از حالات موجود را با استفاده از ElseIf از يکديگر جدا نموده و در نهايت تمامی ساختار را با استفاده از End If به پايان رساند .
If A=1 Then
TestMessage.Text = " A=1"
ElseIf A=2 Then
TestMessage.Text = " A=2 "
ElseIf A=3 Then
TestMessage.Text = " A=3 "
End If
|
مثال : نحوه استفاده از ساختار If...Then
در اين مثال کامپيوتر عددی را به صورت تصادفی توليد نموده و از شما درخواست می شود که اين عدد را تشخيص دهيد .
مرحله اول : تايپ کد زير با استفاده از يک ويرايشگر
مرحله دوم : پس از ذخيره کد فوق در فايلی با نام ifthen.aspx و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت :

مرحله سوم : انتخاب عدد مورد نظر و کليک بر روی دکمه "تشخيص عدد "

توضيحات :
-
با استفاده از کنترل > که اعداد يک تا ده را نمايش می دهد از کاربر خواسته ايم که عددی را انتخاب نمايد .
-
در کد نوشته شده دو متغير به اسامی theNumber و theGuess تعريف که از آنان به منظور ذخيره عدد توليد شده تصادفی و عدد حدس زده شده توسط کاربر استفاده می گردد .
-
برای توليد اعداد تصادفی از تابع ()rnd استفاده شده است. تابع فوق ، يک عدد اعشاری بين صفر و يک را توليد می نمايد . برای داشتن يک عدد تصادفی بين يک تا ده ، می بايست عدد توليد شده را در ده ضرب نمود . بدين ترتيب يک عدد بين صفر تا ده توليد می شود .
-
با استفاده از ساختار If...Then بررسی لازم در خصوص عدد انتخاب شده توسط کاربر و مقايسه آن با عدد تصادفی توليد شده انجام و بر اساس آن پيام مناسبی به کاربر ارائه خواهد شد .
ساختار Select Cast
يکی از چالش های استفاده از ساختار If...Then در مواردی است که قصد داشته باشيم تعداد سه و يا بيش از سه وضعيت را بکمک آن مقايسه نمائيم . مثلا" در صورتی که بخواهيم يک کاربر را بر اساس انتخاب انجام شده به شش صفحه وب مجزاء هدايت نمائيم ، استفاده از ساختار If...then علاوه بر اين که کد برنامه را ناخوانا خواهد کرد ، سرعت اجرای کد نوشته شده نيز کندتر می گردد. در چنين مواردی می توان از ساختار Select Case استفاده نمود .
مثال : نحوه استفاده از ساختار Select Case
مرحله اول : تايپ کد زير با استفاده از يک ويرايشگر
مرحله دوم : پس از ذخيره کد فوق در فايلی با نام selectcase.aspx و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت :

مرحله سوم : انتخاب گزينه مورد نظر و کليک بر روی دکمه " ارسال درخواست "

توضيحات :
-
با استفاده از کنترل <asp:radiobuttonlist> ، مجموعه ای از گزينه ها ارائه شده است .
-
با استفاده از ساختار Select Case بررسی لازم در خصوص گزينه انتخاب شده توسط کاربر انجام و متناسب با آن پيام خاصی در کنترل lablel نمايش داده می شود .
-
در صورتی که به هر دليلی يکی از گزينه های ارائه شده، انتخاب نشود و يا خطای خاصی اتفاق افتاده باشد که داده انتخابی با هيچيک از موارد ذکر شده در ساختار Select Case مطابقت ننمايد ، بخش Case else ساختار Select Case انتخاب و دستورات موجود در اين بخش اجراء خواهند شد .
در بخش سوم اين مقاله به بررسی ساختارهای تکرار خواهيم پرداخت .